import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    hasLogin: false, // 是否登陆
    token: '', // 登陆凭证
    userInfo: {}, // 用户基本信息
    config: {} // 小程序基本配置信息
  },
  mutations: {
    /**
     * 登陆
     * @param {Object} state 
     * @param {Object} data = {userInfo: {}, token: ''} 用户信息数据
     */
    login (state, { userInfo, token }) {
      uni.setStorageSync('userInfo', userInfo)
      uni.setStorageSync('token', token)
      state.hasLogin = true
      state.token = token
    },
    /**
     * 退出登陆
     * @param {Object} state 
     */
    logout (state) {
      uni.removeStorageSync('userinfo')
      uni.removeStorageSync('token')
      state.hasLogin = false
      state.token = ''
    }
  }
})

export default store